/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * PanelListaRespuestas.java
 *
 * Created on 12-mar-2012, 0:34:48
 */

package eOlympics;

import java.awt.FlowLayout;
import java.util.ArrayList;
import javax.swing.JFrame;

/**
 *
 */
public class PanelListaRespuestas extends javax.swing.JPanel {

    private final java.util.List<PanelRespuesta> m_respuestas;

    /** Creates new form PanelListaRespuestas */
    public PanelListaRespuestas() {
        initComponents();
        this.setLayout(new FlowLayout());
        m_respuestas = new ArrayList<PanelRespuesta>();
        this.ajustarRespuestas(2); // ejemplo
    }

    private int m_numRespuestas = 0;

    /**
     * Devuelve el número de respuestas de que consta esta prueba
     * @return
     */
    public int getNumRespuestas() {
        return m_numRespuestas;
    }

    /**
     * Devuelve un String con tantos caracteres como respuestas
     * Cada caracter puede ser A, B, C, D o espacio en blanco.
     * @return una cadena de X caracteres donde X es el número de respuetas.
     */
    public String getRespuestaActual() {
        StringBuilder sb = new StringBuilder();
        for (PanelRespuesta resp : m_respuestas) {
            sb.append(resp.getValorRespuesta());
        }
        return sb.toString();
    }

    public void setNumRespuestas(int n) {
        ajustarRespuestas(n);
    }

    private void ajustarRespuestas(int n) {
        int i = 0;
        for (java.awt.Component c : this.getComponents()) {
            if (c instanceof PanelRespuesta) {
                if (i>n) {
                    this.m_respuestas.remove((PanelRespuesta) c);
                    this.remove(c);
                } else {
                    i++;
                }
            }
        }
        for (;i<n; i++) {
            PanelRespuesta pp = new PanelRespuesta();
            int numPregunta = i+1;
            pp.setNumRespuesta(numPregunta);
            this.m_respuestas.add(pp);
            this.add(pp);
        }
        m_numRespuestas = n;
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {
    }// </editor-fold>//GEN-END:initComponents


    // Variables declaration - do not modify//GEN-BEGIN:variables
    // End of variables declaration//GEN-END:variables

    public static void main(String [] args) {
        int n = 6;
        JFrame jf = new JFrame();
        jf.setBounds(30,30,600,800);
        PanelListaRespuestas pp = new PanelListaRespuestas();
        pp.setNumRespuestas(10); // probamos con un número de respuestas
        jf.add(pp);
        jf.setVisible(true);
    }

}
